﻿using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using TMPro;

namespace TowerDefence
{
    public class ConfirmationTowerUI : MonoBehaviour
    {
        #region 单例模式
        public static ConfirmationTowerUI instance;

        // 在对象唤醒时执行的方法
        public void Awake()
        {
            // 如果已经存在一个 ConfirmationTowerUI 实例，则输出错误信息并返回
            if (instance != null)
            {
                Debug.LogError("存在多个 ConfirmationTowerUI 实例");
                return;
            }
            instance = this; // 否则，将当前实例赋值给 instance
        }
        #endregion

        GameManager gameManager; // GameManager 引用

        // 确认界面的按钮
        public Button yesButton;
        public Button noButton;
        public Button closeButton;

        [Header("激活的商店塔信息")]
        public Image towerSprite; // 塔的图标
        public TextMeshProUGUI nameText; // 塔的名称
        public TextMeshProUGUI damageText; // 伤害文本
        public TextMeshProUGUI fireRateText; // 射速文本
        public TextMeshProUGUI rangeText; // 射程文本
        public TextMeshProUGUI description; // 塔的描述文本

        // 在对象启动时执行的方法
        private void Start()
        {
            gameManager = FindObjectOfType<GameManager>(); // 获取 GameManager 的引用

            gameObject.SetActive(false); // 将游戏对象设为不激活状态
        }

        // 更新界面显示的塔信息
        public void UpdateUI(TowerData data)
        {
            towerSprite.sprite = data.icon; // 设置塔的图标
            nameText.text = data.towerName; // 设置塔的名称
            damageText.text = "伤害: " + data.minDamage + " - " + data.maxDamage; // 设置伤害文本
            fireRateText.text = "射速: " + data.fireRate; // 设置射速文本
            rangeText.text = "射程: " + data.range; // 设置射程文本
            description.text = data.description; // 设置塔的描述文本
        }

        // “是”按钮的点击事件处理方法
        public void YesButton()
        {
            gameManager.InstantiateTowerButton(); // 调用 GameManager 的放置塔的方法
        }

        // “否”按钮的点击事件处理方法
        public void NoButton()
        {
            gameManager.CloseConfirmationWindow(); // 调用 GameManager 的关闭确认窗口的方法
        }

    }
}
